.NET CoreでPDFファイルを生成する方法

Convert HTML to PDF in .NET Core: End-to-End Guide for URLs, Razor Views, Security & Docker

This article was translated from English: Does it need improvement?
Translated
View the article in English

HTMLから直接高忠実度のPDFを生成することは、現代の.NETアプリケーションにおける日常的な要件です。レポート、請求書、チケットなど、ウェブUIに合ったピクセルパーフェクトな出力が必要です。 IronPDFは、HTML、Razorビュー、フルウェブサイトを標準準拠のPDFドキュメントにレンダリングするための単一のC# APIを公開することで、このワークフローを簡素化します。 このガイドの終わりまでに、開発者はASP.NET CoreプロジェクトでURL、生のHTML、またはMVCビューを変換し、同じコードをWindows、Linux、Docker、またはサーバーレス環境にデプロイできるようになります。

[{t:(レイアウトの問題については、IronPDFはPDFがレンダリングされる前にCSS、JavaScript、メディアクエリの癖を診断するヘッドレスChromeデバッガを提供しています。 洗練されたピクセルパーフェクトHTML-to-PDFガイドをご覧ください。)]

クイックスタート:.NET CoreでHTMLからPDFを作成

IronPDFライブラリを使用して、.NET CoreでHTMLをPDFに簡単に変換します。 このガイドは、HTMLコンテンツを高品質のPDFに最小限のコードでレンダリングする簡単な例を提供します。 アプリケーションにPDF作成を容易に統合することを求める開発者に最適です。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. Copy and run this code snippet.

    var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello World</h1>");
  3. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer
class='hsg-featured-snippet'>

最小限のワークフロー (5 ステップ)

  1. NuGetパッケージIronPdfをインストール
  2. RenderUrlAsPdfでウェブサイトのURLを変換
  3. RenderHtmlAsPdfを使用して生のHTMLをレンダリング
  4. MVCビューをPDFにエクスポート
  5. 用紙サイズ、余白、ヘッダー、フッターを調整
次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 ## クイックスタートチェックリスト 1. **インストール** – `Install-Package IronPdf` 2. **URLをレンダリング** – `ChromePdfRenderer.RenderUrlAsPdf()` 3. **生のHTMLをレンダリング** – `ChromePdfRenderer.RenderHtmlAsPdf()` 4. **Razorビューをエクスポート** – `ChromePdfRenderer.RenderHtmlAsPdfAsync()` 5. **出力を微調整** – `ChromePdfRenderer.RenderingOptions`を活用 ### このチュートリアルでカバーする内容 - URL、HTML文字列、およびRazorビューの変換 - ペーパー、余白、およびメディアタイプの設定 - クロスプラットフォームデプロイ (Windows、Linux、Docker) - ポストプロセッシング: 結合、透かし、パスワード保護、デジタル署名 - エンドトゥーエンドのサンプル: チケット予約MVCアプリ #### IronPDFを始める

今日あなたのプロジェクトでIronPDFを無料トライアルで使用開始。

最初のステップ:
green arrow pointer
--- ## PDFライブラリを.NET Coreにインストールするにはどうすればいいですか? .NET 8プロジェクトでは、ライブラリをインストールするのは1行だけで、.NET 9 プレビューや今後の.NET 10リリースとも前方互換性を維持します。 NuGetのパッケージマネージャコンソールを使用し、パッケージマネージャはWindows、Linux、Docker、およびサーバーレスターゲットに自動的にすべての依存関係を解決します。 ```shell PM> Install-Package IronPdf # .NET 8 LTS and higher ``` [{i:(**CLIが必要ですか?** 同じコマンドはプロジェクトフォルダー内で`dotnet add package IronPdf`とともに動作します。)] インストールが完了したら、任意の公開URLを変換することで、すべてが正常に接続されていることを確認します。 ```csharp // Program.cs — .NET 8 LTS using IronPdf; var renderer = new ChromePdfRenderer(); // Render a live website to PDF using PdfDocument pdf = renderer.RenderUrlAsPdf("https://example.com"); // Persist to disk pdf.SaveAs("website-snapshot.pdf"); ``` ### 仕組み - `ChromePdfRenderer`は、バックグラウンドでサンドボックス化されたChromiumインスタンスを起動します。個別のChromeインストールは必要ありません。 - `RenderUrlAsPdf`は、JavaScriptで駆動されるコンテンツ、CSSメディアクエリ、フォントを含む完全にレンダリングされたDOMをキャプチャします。 - 結果として得られる`PdfDocument`は、結合、パスワード保護、またはデジタル署名のためのヘルパーメソッドを公開します。これらの機能はこのチュートリアルの後半でカバーされています。 For more detail on deployment nuances (Azure App Service, AWS Lambda, on-prem Linux), see the dedicated **[installation guide](/get-started/windows/)** and the **[advanced NuGet setup](/get-started/advanced-installation-nuget/)** pages. DockerおよびK8sクラスター用の内部CI/CDのヒントは、**Dockerデプロイのベストプラクティス**でカバーされています。 --- ## .NET CoreサービスがライブのウェブサイトURLをPDFに変換するにはどうすればいいですか? `RenderUrlAsPdf`への1回の呼び出しで十分です: 任意の公にアクセス可能なURLを渡すと、IronPDFは完全にレンダリングされた標準準拠のPDFを返します。 以下のコードは.NET 8 LTSにターゲットを絞り、.NET 9 プレビューや2025年のリリース予定の.NET 10にも変更なくコンパイルされます。 ### ステップバイステップの例 ```csharp // Program.cs — .NET 8 LTS-compatible using IronPdf; // 1. Activate a license (or trial key) IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // 2. Create a reusable renderer instance var renderer = new ChromePdfRenderer { RenderingOptions = { // Force A4 portrait output and apply @media print styles PaperSize = PdfPaperSize.A4, CssMediaType = PdfCssMediaType.Print } }; // 3. Convert Microsoft Docs home page to PDF using PdfDocument pdf = renderer.RenderUrlAsPdf("https://learn.microsoft.com/"); // 4. Save the PDF or stream it from a Web API pdf.SaveAs("docs-offline-copy.pdf"); ``` ### なぜこれが動作するのか - `ChromePdfRenderer`は、サンドボックス化されたChromiumインスタンスを起動します。Dockerイメージがスリムに保たれるので、システムのChrome依存性はありません。 - `RenderUrlAsPdf`はDOMとJavaScriptが完了するのを待ってスナップショットを取得するため、シングルページアプリケーションが正しくレンダリングされます。 - `CssMediaType`を**Print**に設定することで、エンジンに印刷専用のルールを使用させ、ブラウザの「印刷 → PDFとして保存」の出力に一致させます。 - 結果として得られる`PdfDocument`は暗号化、デジタル署名、結合、またはラスタライズできます。これらの機能は後の章で取り上げられます。 [{t:(**ピクセルパーフェクトデバッグ:** `renderer.LoggingOptions.DebugMode = true`を有効にし、レンダリング中にライブDevToolsを見るために[ヘッドレス-Chromeデバッグガイドを参照してください。)] ### 関連リソース - APIリファレンス – `ChromePdfRenderer.RenderUrlAsPdf` - APIリファレンス – `PdfDocument.SaveAs` - チュートリアル – DockerコンテナにIronPDFをデプロイする --- ## 生のHTMLを.NET CoreでPDFに変換するにはどうすればいいですか? HTML文字列—またはRazorビューのレンダリングされたマークアップ—を`ChromePdfRenderer.RenderHtmlAsPdf`に渡すことで、即座に標準準拠のPDFを生成します。 このメソッドはIronPDFの組込みChromiumエンジンを起動するため、外部ブラウザやWebViewの依存関係は必要ありません。 以下に示す同じコードは、今日の.NET 8 LTSでコンパイルされ、2025年11月のリリース予定の.NET 10と前方互換性を保ち続けます。 ### 例 — HTMLフラグメントからPDFを生成する ```csharp // Program.cs — compatible with .NET 8 and newer using IronPdf; // Sample HTML fragment (could also be read from a file, Razor view, or CMS) const string html = """ Quarterly Report
ProductRevenue ($)
IronPDF for .NET1,200,000
IronOCR for .NET890,000
IronXL for .NET610,000
"""; // 1. Create a renderer once and reuse it across conversions var renderer = new ChromePdfRenderer { RenderingOptions = { PaperSize = PdfPaperSize.A4, // ISO-standard paper size PaperOrientation = PdfPaperOrientation.Portrait, CssMediaType = PdfCssMediaType.Screen, // Respect on-screen CSS RenderDelay = 100, // Wait 100 ms for JS/animations FallbackEncoding = "utf-8" // Handle non-ASCII correctly } }; // 2. Render the HTML fragment using PdfDocument pdf = renderer.RenderHtmlAsPdf(html); // 3. Persist to disk or return via ASP.NET Core FileStreamResult pdf.SaveAs("q2-report.pdf"); ``` ### コードが示すこと - **Embedded Chromium** -- IronPDF bundles the [Chromium engine](/object-reference/api/IronPdf.Rendering.PdfRenderingEngine.html), guaranteeing [HTML5, CSS3, and JavaScript parity](/product-updates/milestones-stability-performance/) with modern browsers. - **単一の依存性** -- 軽量なNuGetインストールで、Windows、Linux、Docker、Azure/AWSを余分なシステムライブラリなしでカバーします。 - **レンダリングオプション** -- `PaperSize`、`CssMediaType`、`RenderDelay`はブラウザの印刷設定を反映し、PDFが画面レイアウトに一致します。 - **将来の証明目標** -- APIサーフェスは.NET 8、.NET 9 STS、および今後の.NET 10間で同じです。長期的な保守が最小限です。 - **ポストプロセッシングフック** -- `PdfDocument`は結合、パスワード保護、デジタル署名のヘルパーを公開します。これらはこのガイドの後半で取り上げられています。 **Further reading:** see the step-by-step [HTML-string-to-PDF tutorial](/how-to/html-string-to-pdf/) and the full [`ChromePdfRenderer` API documentation](https://ironpdf.com/object-reference/api/IronPdf.ChromePdfRenderer.html). --- ## ASP .NET Core MVCビューはどのようにPDFにエクスポートされますか? IronPDFは、ブラウザが行うのと同様に完全に処理されたRazorビュー(`.cshtml`)をレンダリングし、結果を`PdfDocument`としてストリームします。 以下のワークフロはコントローラロジックをクリーンに保ち、ブラウザプラグインを必要とせず、.NET 8 LTS、.NET 9プレビュー、および2025年11月の.NET 10リリースで動作します。 ### エンドツーエンドコントローラ例 ```csharp // TicketsController.cs — .NET 8 LTS / MVC using IronPdf; using Microsoft.AspNetCore.Mvc; using YourApp.Models; // TicketViewModel public class TicketsController : Controller { private readonly ChromePdfRenderer _renderer; public TicketsController() { _renderer = new ChromePdfRenderer { RenderingOptions = { PaperSize = PdfPaperSize.A5, // Compact ticket size PaperOrientation = PdfPaperOrientation.Portrait, FitToPaperWidth = true, CssMediaType = PdfCssMediaType.Print, Margins = new PdfMargins(5, 10, 5, 10) // mm } }; } // GET /Tickets/Print/42 public async Task Print(int id) { TicketViewModel vm = await _service.GetTicketAsync(id); // 1. Render the Razor view to an HTML string string html = await RazorTemplateEngine.RenderViewAsync( HttpContext, "~/Views/Tickets/Print.cshtml", vm); // 2. Convert HTML → PDF using PdfDocument pdf = _renderer.RenderHtmlAsPdf(html); // 3. Stream back as a file return File(pdf.BinaryData, "application/pdf", $"ticket-{id}.pdf"); } } ``` #### このコードが示すこと - **No temporary files** -- the Razor view is rendered in-memory, then passed directly to [`RenderHtmlAsPdf`](/object-reference/api/IronPdf.ChromePdfRenderer.html), avoiding disk I/O and temp-folder [race conditions](/examples/async/). - **チケットサイズの出力** -- `PaperSize = A5`と狭い余白で自宅印刷用のチケットをコンパクトに保ちます。 - **一貫した印刷スタイル** -- `CssMediaType = Print`はブラウザが使用する同じ`@media print` CSSルールを適用します。 - **バイナリストリーミング** -- `pdf.BinaryData`はファイルシステムに触れることなくドキュメントをストリームします。APIエンドポイントやLambda関数に最適です。 - **再利用可能なレンダラー** -- `ChromePdfRenderer`はコントローラごとに一度インスタンス化され、再利用され、プロセス生成オーバーヘッドを最小限に抑えます。
id='pdfOptionsAcc'>
class='accordion-item'> ## id='optPaper'>
data-bs-parent='#pdfOptionsAcc'>
class='accordion-body'>

`PaperSize`, `PaperOrientation`, `FitToPaperWidth`

次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。
class='accordion-item'>

id='optMargins'>

data-bs-parent='#pdfOptionsAcc'>
class='accordion-body'>

Margins, Header, Footer, Watermark

次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のステップ: 暗号化、デジタル署名、または複数のチケットを1つのファイルに結合。 マージの例 および デジタル署名の方法 を参照してください。 **Next step:** add encryption, digital signatures, or merge multiple tickets into a single file. See the [merge example](/examples/merge-pdfs/) and the [digital-signature how-to](/examples/digitally-sign-a-pdf/). --- IronPDFは、用紙寸法、方向、ヘッダー&フッター、JavaScriptタイミング、透かしのすべての側面を制御する1つの`ChromePdfRenderOptions`オブジェクトを公開しています。暗号化、デジタル署名—すべて追加のブラウザプラグインなしで。 ### コードサンプル — 複数のオプションを一度に適用 ### これらのオプションが重要な理由 ```csharp // AdvancedOptions.cs — .NET 8 compatible using IronPdf; var renderer = new ChromePdfRenderer(); // Configure everything in one place renderer.RenderingOptions = new ChromePdfRenderOptions { // 1. Page layout PaperSize = PdfPaperSize.A4, // ISO size PaperOrientation = PdfPaperOrientation.Portrait, Margins = new PdfMargins { Top = 20, Bottom = 25, Left = 15, Right = 15 }, // mm // 2. Timing & media CssMediaType = PdfCssMediaType.Print, // Respect @media print EnableJavaScript = true, RenderDelay = 200, // Wait 200 ms for animations // 3. Headers & footers (HTML gives full design freedom) HtmlHeader = "
Invoice — {{date}}
", HtmlFooter = "
Page {{page}} / {{total-pages}}
", // 4. Watermark Watermark = new HtmlStamp { HtmlTemplate = "
CONFIDENTIAL次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。", VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }, // 5. Security SecurityOptions = new PdfSecurityOptions { OwnerPassword = "StrongOwnerPwd!", UserPassword = "ReadOnly", AllowUserPrinting = false, AllowUserCopyPasteContent = false } }; // Render any HTML using PdfDocument pdf = renderer.RenderHtmlAsPdf(""); // Digitally sign with a PFX certificate (optional) pdf.SignAndStamp("./certs/company.pfx", "Iron Software", "Bangkok", "Approval"); // Save pdf.SaveAs("advanced-options-demo.pdf"); ``` - **`PaperSize`、`Margins`、および`CssMediaType`** — ブラウザの印刷ダイアログを反映し、オンスクリーンのレイアウトとPDFがWindows、Linux、Docker間で同一に保たれるようにします。 - **HTML ヘッダーとフッター** — Razorトークン、CSS、およびJavaScriptをサポートし、動的なページ番号やブランド化に便利です。 - **`HtmlStamp`** — 単一の行でブランド化された透かしを作成し、全面的なHTML + CSS制御を実現します。 - **セキュリティオプション** — 128ビットの暗号化、所有者/ユーザーパスワード、および細かい権限をサードパーティのツールを使用せずに有効にします。 - **デジタル署名** — コード内で暗号学的シールを直接追加し、法的真正性と改ざんされた証拠を維持します。 - `ExtractAllText`および`ExtractAllImages`のような抽出ヘルパーは、分析が必要な時にプロセスを逆転します。 ### クイックリファレンス — 人気のある設定
id='advRenderAcc'>
class='accordion-item'> ## id='layHead'>
data-bs-parent='#advRenderAcc'>
class='accordion-body'>

`PaperSize`, `PaperOrientation`, `Margins`, `CssMediaType`, `RenderDelay`

次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。
class='accordion-item'> ## id='headFoot'>
data-bs-parent='#advRenderAcc'>
class='accordion-body'>

`HtmlHeader`, `HtmlFooter`, 動的Razorプレースホルダ, ページ番号トークン

次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。
class='accordion-item'> ## id='wmHead'>
data-bs-parent='#advRenderAcc'>
class='accordion-body'>

`Watermark`, `HtmlStamp`, 不透明度, 対揃え

次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。
class='accordion-item'> ## id='secHead'>
data-bs-parent='#advRenderAcc'>
class='accordion-body'>

`SecurityOptions`, `SignAndStamp`, 所有者 / ユーザーパスワード, 128ビットAES, 証明書シーリング

次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 クロスプラットフォームの平等を確保するためにデプロイメントセクションに進んでください。 ## PDF生成コードをLinuxおよびWindowsのDockerにどのようにデプロイできますか? --- IronPDFは単一の**自己完結型NuGetパッケージ**として出荷され、ASP.NET Core(またはコンソール)アプリをWindowsとLinuxの両方でコンテナ化するのは簡単です。 鍵は発行されたバイナリをスリムなランタイムイメージにコピーし、LinuxではIronPDFが必要とする2つのネイティブライブラリ(`libnss3`と`libatk1.0-0`)を追加することです。 ### マルチステージDockerfile (Ubuntu 22.04) [{i:(**なぜマルチステージ?** SDKイメージ(ステージ1)はプロジェクトをコンパイルします; 最終ランタイムイメージ(ステージ2)は、ビルドツールが破棄されるため、120 MB未満でスリムに留まります。)] [{i:(**Windowsコンテナ?** 2番目のステージを`mcr.microsoft.com/dotnet/aspnet:8.0-windowsservercore-ltsc2022`に置き換えてください。Chromium DLLはバンドルされているため、追加パッケージは不要です。)] ```dockerfile ####### ---------- stage 1 ---------- FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src COPY ["MyPdfApp.csproj", "."] RUN dotnet restore COPY . . RUN dotnet publish -c Release -o /app/publish ####### ---------- stage 2 ---------- FROM mcr.microsoft.com/dotnet/aspnet:8.0-jammy ######## Install two native libs required by Chromium RUN apt-get update && \ apt-get install -y --no-install-recommends libnss3 libatk1.0-0 && \ rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=build /app/publish . ENTRYPOINT ["dotnet", "MyPdfApp.dll"] ``` ### エンドツーエンド検証スクリプト - APIアクションは内部で`ChromePdfRenderer.RenderUrlAsPdf`を呼び出し、ちょうどSection2のようにします。 ```bash docker build -t pdf-demo . docker run --rm -p 8080:80 pdf-demo ######### ↳ Navigate to http://localhost:8080/api/pdf?url=https://example.com ``` - IronPDFはコンテナ内でそのサンドボックス化されたChromiumプロセスを起動し、Xサーバーは必要ありません。ヘッドレスでレンダリングします。 - 大規模なレンダー中でもメモリ使用量は200 MB未満に留まります。 [{t:(**トラブルシューティングのヒント:** コンテナログに**“libnss3.so not found”**エラーが表示される場合は、`libnss3`と`libatk1.0-0`の両方が存在するか確認してください。 Alpineイメージは*サポートされていません*。musl Cライブラリが必要なシンボルを欠いているためです。)] ### 内部リソース - ハウツー – Azure App Service LinuxでIronPDFを実行する - チュートリアル – DockerコンテナにIronPDFをデプロイする - APIリファレンス – `ChromePdfRenderer`クラス ## 既存のPDFからコンテンツを開く、結合する、透かしをつける、抽出するにはどうすればいいですか? --- IronPDFは、IronPDF、Adobe® Acrobat、またはサードパーティのツールで生成されたすべてのPDFを第一級の`PdfDocument`オブジェクトとして処理し、品質を損なうことなく開いたり、編集したり、セキュリティを掛けたり、再保存したりできます。 同じAPIサーフェスは、今日の.NET 8 LTSで動作し、.NET 9 プレビューや今後の.NET 10リリースでも変更なくコンパイルされます。 ### 統一されたサンプル — 開く → 結合 → 透かし → 抽出 ### なぜこれが重要なのか ```csharp // ManipulateExistingPdf.cs — .NET 8 LTS compatible using IronPdf; using System.Linq; // Step 1: Open two existing files (password-protected PDFs are supported) PdfDocument invoice = PdfDocument.FromFile("invoice.pdf", "ReadOnly"); // open with user pwd PdfDocument tAndCs = PdfDocument.FromFile("terms.pdf"); // no pwd required // Step 2: Merge them (invoice pages first, then T&Cs) PdfDocument mergedPdf = PdfDocument.Merge(invoice, tAndCs); // 1-liner merge // Step 3: Apply a diagonal CONFIDENTIAL watermark to every page mergedPdf.ApplyStamp( "
CONFIDENTIAL次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。", verticalAlignment : VerticalAlignment.Center, horizontalAlignment : HorizontalAlignment.Center); // Step 4: Extract all text and the first image for audit purposes string fullText = mergedPdf.ExtractAllText(); var image = mergedPdf.ExtractAllImages().FirstOrDefault(); // Step 5: Save or stream mergedPdf.SaveAs("invoice-with-terms.pdf"); ``` - **開く & 結合** – `PdfDocument.FromFile`は暗号化されたファイルを含むすべての標準準拠PDFをロードし、`PdfDocument.Merge`が単一の呼び出しで任意の数のドキュメントを連結します。 - **透かし** – `ApplyStamp`(別名`HtmlStamp`)は完全にスタイル設定されたHTML/CSSオーバーレイ—ロゴ、QRコード、または斜めテキスト—を選択したページにラスタライズせずに埋め込みます。 - **コンテンツ抽出** – `ExtractAllText`および`ExtractAllImages`は、生のUTF-8テキストまたは下流のアーカイブやAIパイプラインのためのバイナリ イメージストリームを抽出します。 - **デジタル署名対応** – 同じ`PdfDocument`インスタンスは`SignAndStamp`でシールでき、RFC 3161準拠のハッシュを生成し、ISO 32000-2のデジタル署名要件に一致します。 - **オープンスタンダード準拠** – IronPDFは元のPDF構造(フォント、レイヤー、XMPメタデータ)を保持しているため、出力はAdobe® ReaderやISO 32000-1ビューア互換です。 - **未来志向** – APIは相互運用アセンブリやWin32 GDI呼び出しを避け、コードはWindows、Linux、Docker、および今後の.NET 10サーバーレス SKU で変更なく実行されます。 **分割、回転、またはページを削除する必要がありますか?** 詳細な操作については、ページレベルの編集チュートリアルを参照してください。 ## PDFは.NET Coreでどのように暗号化され、デジタル署名されるのですか? --- IronPDFはドキュメントを2つのステップでセキュアに: **AESベースの暗号化**(ユーザー/オーナーパスワード+細かい権限)および **X.509デジタル署名**、それが暗号学的ハッシュでファイルをシールします。 両方のAPIは同じ`PdfDocument`オブジェクト上にあり、ワークフローは今日の.NET 8 LTSで同一で、.NET 9プレビューおよび今後の.NET 10リリースでも変更なくコンパイルされます。 ### 例 — 256ビットAESを適用し、印刷権限をロックし、視認可能な署名を追加 ### 舞台裏 ```csharp // SecureAndSign.cs — .NET 8 LTS compatible using IronPdf; // Step 1: Load an existing PDF (or produce one with RenderHtmlAsPdf) PdfDocument pdf = PdfDocument.FromFile("financial-report.pdf"); // Step 2: Configure AES-256 encryption & permissions pdf.SecuritySettings = new PdfSecuritySettings { EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256Bit, OwnerPassword = "IronAdmin!2025", UserPassword = "ReadOnly", AllowUserPrinting = PdfPrintSecurity.Disabled, AllowUserCopyPasteContent = false, AllowUserAnnotations = false }; // Step 3: Digitally sign with a PFX certificate pdf.SignAndStamp( certificatePath : "./certs/ironsoftware.pfx", authority : "Iron Software Ltd.", location : "Chicago, IL", reason : "Final approval" ); // Step 4: Persist or stream pdf.SaveAs("financial-report-secured-signed.pdf"); ``` - **AES-256の暗号化** -- IronPDFは負荷をNIST承認のAES鍵でラップし、不正な開放、印刷、またはコピー&ペーストをブロックします。 - **権限の粒度** -- `AllowUserPrinting`と`AllowUserFormData`などのプロパティが個別のアクション権限を切り替えます。任意の制限を有効にするにはオーナーパスワードが必要です。 - **デジタル署名** -- `SignAndStamp`はRFC 3161のタイムスタンプと証明書チェーンを埋め込み、Adobe® Acrobatや他のISO 32000-2ビューアが認識する改ざん防止ハッシュを生成します。 - **ワンストップAPI** -- 暗号化と署名の両方が同じ`PdfDocument`インスタンスを変更し、複数のファイルパスを避け、内部フォント、レイヤー、メタデータを保持します。 [{t:(**トラブルシューティングのヒント:** Adobe Readerが「無効な署名」と報告した場合、PFXが信頼されたルート証明書を含んでいること、`理由`/`場所`の文字列がASCIIクリーンであることを確認してください。)] ### コアセキュリティ設定
id='secAcc'>
class='accordion-item'>

id='encHead'>

data-bs-parent='#secAcc'>
class='accordion-body'>

PdfSecuritySettingsOwnerPassword, UserPassword, EncryptionAlgorithm, AllowUserPrinting

PdfSecuritySettingsOwnerPassword, UserPassword, EncryptionAlgorithm, AllowUserPrinting

次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 ### 詳細な内部リソース

PdfDocument.SignAndStamp — PFX path, authority, location, reason, timestamp

次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 - ハウツー – Azure App Service LinuxでIronPDFを実行する for deeper dives - **APIリファレンス** – `PdfSecuritySettings` ## HTML-to-PDFのパフォーマンスを最適化し、.NET Coreでスケーラブルにする方法は? IronPDFのChromiumエンジンは、既にほとんどのページを1秒未満で現代のハードウェアでレンダリングしますが、**バッチレンダリング、有効化されたマルチスレッド、ヘッドレスChromeのオーバーヘッドを削減**することでスループットを増やすことができます。 --- 以下のヒントは、すべての.NETバージョンに同様に適用されます。 ### 1. バッチレンダリングをバックグラウンドスレッドプールで行う - `ChromePdfRenderer`は**スレッドセーフ**です。単一のインスタンスがデッドロックせずに数十の同時タスクをサービスできます。 - `Parallel.ForEach`はすべてのCPUコアを最大限に活用します。典型的なサーバーでは単一スレッドループと比較して4~6倍のスループットが得られます。 ```csharp // BatchRender.cs — Thread-safe on .NET 8+ using IronPdf; using System.Threading.Tasks; var htmlSources = Directory.GetFiles("./html", "*.html"); var renderer = new ChromePdfRenderer(); // reuse 1 instance Parallel.ForEach(htmlSources, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount }, file => { string html = File.ReadAllText(file); using PdfDocument pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs(Path.ChangeExtension(file, ".pdf")); }); ``` - ASP.NETリクエストが待機している場合は、重いレンダリングをホストされたバックスグラウンドサービスまたはメッセージキューに移動し、応答時間を短く保ちます。 ### 2. ヘッドレスChromeの起動コストを削減 IronPDFは独自のChromiumビルドを提供しますが、各レンダーには少額の起動コストがかかります。 プーリングが役立ち、**Linuxコンテナ**は2つのネイティブライブラリを含める必要があります: いずれかのライブラリが不足していると、Dockerログに“`libnss3.so not found`”エラーとして現れます。 推奨Chromeフラグ(IronPDFにより自動適用されます)には`--disable-gpu`および`--no-sandbox`が含まれ、コンテナでのメモリおよびルートユーザーの問題を削減します。 IronPDF ships its own Chromium build, but each render incurs a small startup tax. Pooling helps, and **Linux containers** must include two native libs: ```dockerfile RUN apt-get update && \ apt-get install -y --no-install-recommends libnss3 libatk1.0-0 ``` Missing either library manifests as a [“`libnss3.so not found`” error](https://stackoverflow.com/questions/50701824/limit-chrome-headless-cpu-and-memory-usage) in Docker logs. [Recommended Chrome flags (automatically applied by IronPDF)](https://stackoverflow.com/questions/66947545/chrome-headless-not-working-as-root-with-no-sandbox) include `--disable-gpu` and `--no-sandbox` to reduce [memory and root-user issues](https://issues.chromium.org/40527919) in containers. ### 3. `RenderDelay`または`WaitFor`を使用して遅延するJavaScriptを待つ `DOMContentLoaded`後にカウンタをアニメーション化したりデータを取得したりするページは、短い遅延が必要かもしれません。 ```csharp renderer.RenderingOptions.RenderDelay = 200; // ms // OR: renderer.RenderingOptions.JavaScript = "WaitFor('window.doneLoading')"; ``` カスタムプロミスやDOMポーリングのための専用の**[WaitForチュートリアル](/how-to/waitfor/)**を参照してください。 ### 4. 1つのリクエストのためのデバッグログを有効にする ```csharp renderer.LoggingOptions.DebugMode = true; renderer.LoggingOptions.LogsToConsole = true; renderer.LoggingOptions.LogFilePath = "./logs/ironpdf-debug.log"; ``` ライブDevToolsトレースは、欠けているフォント、404画像、およびコードの再コンパイルを必要としないタイミングイベントを明らかにします。 ### 5. 再レンダリングの代わりにテンプレートPDFを再利用する 請求書の実行のためには、[プレースホルダを持つ**テンプレートPDF**](/troubleshooting/ironpdf-performance-assistance/)を作成し、複雑なHTMLを再構築する代わりにテキスト置換を行います。 それは10倍速く、メモリ的にも軽いです。 ### クイックチューニングチェックリスト

Parallel.ForEach, async/await, reuse a single ChromePdfRenderer

次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。

Use aspnet:8.0-jammy; install libnss3 + libatk1.0-0; flags --no-sandbox, --disable-gpu

次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。

RenderDelay, WaitFor(), log DevTools timeline for slow SPA hydrations

次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 次のタスク: 複数のPDFを結合、テキストと画像を抽出し、Dockerやサーバーレスにデプロイ。 ### さらなる読み物 - 方法 – [非同期/マルチスレッドでPDFを生成する](/how-to/async/) - トラブルシューティング – [パフォーマンスアシスタンスセンター](/troubleshooting/ironpdf-performance-assistance/) - 例 – [スレッド化レンダリングデモ](/examples/threading/) --- ## 無料トライアルをダウンロードし、ライセンスを選び、専門のサポートを受けられる場所はどこですか? {#anchor-10-resources} A [30-day **trial key**](trial-license) is issued instantly from the [_Start Free Trial_](trial-license) form and unlocks every feature—including HTML-to-PDF, digital signatures, and encryption—without watermarking. ライブラリを評価した後、永久的な**デベロッパー**、**デプロイ**、または**エンタープライズ**ライセンスを選択してください; 各プランは無料の小規模アップデートと開発/ステージング/本番使用権利、および30日間の返金保証を含みます。 キーの適用は、単一のコード行(`IronPdf.License.LicenseKey = "YOUR-KEY";`)であり、CI/CDパイプラインで自動化することができます。 Comprehensive [**documentation**—quick-start guides](/docs/), [API reference](/object-reference/api/), and [tutorial videos](/blog/videos/)—lives at the docs portal and is updated for every .NET release. Engineering questions receive one-business-day responses via [live chat](#live-chat), [email](mailto:support@ironsoftware.com), or phone from the Chicago-based support team. パフォーマンスチューニングと配置に関するFAQは、パフォーマンスアシスタンスセンターに集約されています。 ### クイックリンク |リソース|URL|その重要性| |----------|-----|----------------| |30日間のトライアルキーを取得する|[`https://ironpdf.com/demos/`](https://ironpdf.com/demos/)|透かしなしですべての機能を解除| |ライセンスと価格|[`https://ironpdf.com/licensing/`](https://ironpdf.com/licensing/)|永久またはサブスクリプションプラン; Iron Suiteは10のライブラリを束ねています| |APIリファレンス|[`https://ironpdf.com/object-reference/api/`](https://ironpdf.com/object-reference/api/index.html)|完全なクラスドキュメント、例: `ChromePdfRenderer`| |ドキュメントポータル|[`https://ironpdf.com/docs/`](https://ironpdf.com/docs/)|ガイド、チュートリアル、サンプルプロジェクト| |パフォーマンスアシスタンス|[`https://ironpdf.com/troubleshooting/ironpdf-performance-assistance/`](https://ironpdf.com/troubleshooting/ironpdf-performance-assistance/)|最適化とスケーリングのヒント| |サポートに連絡する|[`https://ironsoftware.com/contact-us/`](https://ironsoftware.com/contact-us/)|ライブチャット、メール、電話サポート | ### 次のステップ 1. **[サンプルリポジトリをクローン](https://github.com/iron-software/IronPdf.Examples/tree/main/tutorials/dotnet-core-pdf-generating)**し、MVCビューのレンダリングからAES-256暗号化までのすべての主要機能をデモンストレーションします。 2. **[トライアルキーをプラグイン](trial-license)**し、既存のソリューションでユニットテストを実行してクロスプラットフォーム互換性を検証します。 3. **[ライブデモを予約する](https://ironpdf.com/#booking-demo)**し、エンジニアリングチームとプロジェクト固有の推奨事項を相談します。 これらのリソースを手にして、あらゆる.NETチームが、オンプレミス、Docker、およびサーバーレスのいずれであっても、単一のスプリントでピクセルパーフェクトなPDFを本番環境に出荷できます。

よくある質問

.NET CoreでHTMLをPDFに変換するにはどうすればよいですか?

IronPDFライブラリを使用して.NET CoreでHTMLをPDFに変換できます。まず、IronPDF NuGetパッケージをインストールし、ChromePdfRendererインスタンスを作成します。RenderHtmlAsPdfメソッドを使用してHTML文字列をPDFに変換します。

ウェブサイトのURLをPDF文書に変換するにはどうすればよいですか?

ウェブサイトのURLをPDF文書に変換するには、IronPDF NuGetパッケージをインストールし、ChromePdfRendererインスタンスを作成し、RenderUrlAsPdfメソッドを使ってURLをPDFにレンダリングします。結果はSaveAsメソッドを使用して保存できます。

RazorビューをPDFに変換する最良の方法は何ですか?

RazorビューをPDFに変換する最良の方法はIronPDFを使用することです。まず、RazorビューをHTML文字列にレンダリングし、この文字列をRenderHtmlAsPdfメソッドに渡してPDF文書を作成します。

PDF文書のセキュリティをどのように強化できますか?

IronPDFを使用してPDFのセキュリティを強化できます。AES-256暗号化、パスワード設定、ユーザー権限の制御を適用します。SecuritySettingsプロパティを介してこれらの設定を構成し、印刷や編集といった操作を制限します。

PDFレンダリングのカスタマイズに対してどのようなオプションがありますか?

IronPDFはChromePdfRenderOptionsクラスを通じてさまざまなレンダリングオプションを提供し、用紙サイズ、方向、マージン、CSSメディアタイプを設定できます。また、ヘッダー、フッター、透かしを追加してカスタマイズされたドキュメント出力も可能です。

DockerコンテナにPDF生成アプリケーションをどのようにデプロイしますか?

DockerコンテナにPDF生成アプリケーションをデプロイするには、DockerfileでLinuxの依存関係を構成し、ユーザー権限を設定します。IronPdf.Installation.LinuxAndDockerDependenciesAutoConfigを利用して依存関係を自動管理します。

C#を使用してPDFに透かしを追加するにはどうすればよいですか?

IronPDFを利用してHtmlStampオブジェクトでWatermarkプロパティを使用することでPDFに透かしを追加できます。高度なオプションには、HtmlStamperクラスを使用してカスタムポジショニングや透過効果を設定できます。

PDF文書にデジタル署名を追加できますか?

はい、IronPDFのPdfSignatureクラスを使用してPDFにデジタル署名を追加できます。PdfDocumentSignメソッドを利用し、証明書ファイルを提供して文書の完全性と信憑性を確保します。

.NET CoreでPDF生成のパフォーマンスをどのように最適化できますか?

スレッドセーフなChromePdfRendererインスタンスを再利用し、マルチスレッディングを有効にし、不要なヘッドレス- ChromeのスタートアップフラグをトリミングすることでPDF生成のパフォーマンスを最適化します。これらの実践によりアプリケーションの効率を向上させます。

このチュートリアルの.NET Core HTMLからPDFへの例は.NET 10でも動作しますか?

はい。IronPDFは.NET 10と完全に互換性があるため、このチュートリアルのChromePdfRenderer HTMLからPDFへの例を.NET 10プロジェクトでコアコードを変更せずに使用できます。主な違いはプロジェクトを作成するときに.NET 10をターゲットにし、その後NuGetから最新のIronPdfパッケージをインストールして、HTML、Razorビュー、またはURLからピクセルパーフェクトなPDFを生成することです。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

Jacob Mellorは、Iron Softwareの最高技術責任者であり、C# PDF技術の開拓者としてその先進的な役割を担っています。Iron Softwareのコアコードベースのオリジナルデベロッパーである彼は、創業時から製品のアーキテクチャを形作り、CEOのCameron Rimingtonと協力してNASA、Tesla、全世界の政府機関を含む50人以上の会社に成長させました。

Jacobは、1998年から2001年にかけてマンチェスター大学で土木工学の第一級優等学士号(BEng)を取得しました。1999年にロンドンで最初のソフトウェアビジネスを立ち上げ、2005年には最初の.NETコンポーネントを作成し、Microsoftエコシステムにおける複雑な問題の解決を専門にしました。

彼の旗艦製品であるIronPDFとIronSuite .NETライブラリは、全世界で3000万以上のNuGetインストールを達成しており、彼の基本コードが世界中で使用されている開発者ツールを支えています。商業的な経験を25年間積み、コードを書くことを41年間続けるJacobは、企業向けのC#、Java、およびPython PDF技術の革新を推進し続け、次世代の技術リーダーを指導しています。

によってレビュー

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'name'

Filename: sections/author_component.php

Line Number: 70

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 70
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/tutorials/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Tutorials.php
Line: 29
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

">

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'title'

Filename: sections/author_component.php

Line Number: 84

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 84
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/tutorials/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Tutorials.php
Line: 29
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'comment'

Filename: sections/author_component.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/tutorials/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Tutorials.php
Line: 29
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once